<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var popupWindow = null;

// 명령을 모아 놓은 객체
var commendList = {
		// 윈도우 생성하여 열기
		open: function(url){
			
			// url 데이터가 입력되지 않았다면
			if (!url) {
				url = 'about:blank';
			}
			
			popupWindow = window.open(url, 'popup', 'width=100,height=100');
			document.write(url + ' 웹 사이트를 팝업으로 열었습니다.<br />');
		},
		
		// 생성된 윈도우 닫기
		close: function(){
			
			// 생성되어 있는 팝업 윈도우가 있다면
			if (popupWindow) {
				popupWindow.close();
				popupWindow = null;
				document.write('팝업 윈도우를 닫았습니다.<br />');
			// 생성되어 있는 팝업 윈도우가 없다면
			} else {
				document.write('팝업 윈도우가 열려있지 않습니다.<br />');
			}
		}
};

// 무한 반복
while(true) {
	// 사용자에게 명령 입력받기
	var commend = prompt('명령을 입력해 주세요. 그만 하시려면 \'exit\'라고 입력하시면 됩니다.');
	
	if (commend === 'exit') {
		// 입력 받은 명령이 'exit'라면 반복문 while에서 빠져나가기
		break;
	} else if (commend){
		// 입력 받은 명령이 있다면 명령은 빈칸을 기준으로 잘라서 배열에 보관
		var commends = commend.split(' ');
		
		// 배열에 들어간 데이터가 1개 뿐이라면
		if (commends.length === 1) {
			commendList[commend]();
		
		// 배열에 있는 데이터가 1개가 아니라면
		} else {
			var commend = commends[0];
			var args = commends[1];
			
			// 배열의 첫 번째는 명령의 식별자로 두 번째는 명령의 인자로 담아 실행
			commendList[commend](args);
		}
	} else {
		document.write(commend + ': 명령이 잘못되었습니다. 다시 입력해 주세요.<br />');
	}
}

</script>
</head>
<body>
</body>
</html>